package com.wangku.springmvc.utils;


import com.wangku.springmvc.entity.PageData;

import java.util.Map;
import java.util.Set;

@SuppressWarnings("rawtypes")
public class ParamUtil {

	public static String getString(Map paramsMap, String param, String defaultValue) {
		if (paramsMap == null || paramsMap.isEmpty() || param == null) {
			return defaultValue;
		}
		Object value = paramsMap.get(param);
		return value != null ? value.toString().trim() : defaultValue;
	}

	public static Integer getInt(Map paramsMap, String param, Integer defaultValue) {
		if (paramsMap == null || paramsMap.isEmpty() || param == null) {
			return defaultValue;
		}

		Object value = paramsMap.get(param);
		if (value == null) {
			return defaultValue;
		}
		try {
			return Integer.parseInt(value.toString().trim());
		} catch (NumberFormatException e) {
			return defaultValue;
		}
	}

	public static Long getLong(Map paramsMap, String param, Long defaultValue) {
		if (paramsMap == null || paramsMap.isEmpty() || param == null) {
			return defaultValue;
		}

		Object value = paramsMap.get(param);
		if (value == null) {
			return defaultValue;
		}
		try {
			return Long.parseLong(value.toString().trim());
		} catch (NumberFormatException e) {
			return defaultValue;
		}
	}

	public static Double getDouble(Map paramsMap, String param, Double defaultValue) {
		if (paramsMap == null || paramsMap.isEmpty() || param == null) {
			return defaultValue;
		}

		Object value = paramsMap.get(param);
		if (value == null) {
			return defaultValue;
		}
		try {
			return Double.parseDouble(value.toString().trim());
		} catch (NumberFormatException e) {
			return defaultValue;
		}
	}

	public static Boolean getBoolean(Map paramsMap, String param, Boolean defaultValue) {
		if (paramsMap == null || paramsMap.isEmpty() || param == null) {
			return defaultValue;
		}

		Object value = paramsMap.get(param);
		if (value == null) {
			return defaultValue;
		} else if ("true".equalsIgnoreCase(value.toString().trim())) {
			return true;
		} else if ("false".equalsIgnoreCase(value.toString().trim())) {
			return false;
		} else {
			return defaultValue;
		}
	}
	/**
	 * 首字母大写
	 * @param pageData
	 * @return
	 */
	public static PageData toEntity(PageData pageData){
		PageData entity=new PageData();
		if(pageData != null){
			Set keySet = pageData.keySet();
			for (Object object : keySet) {
				String key=object.toString();
				String ch=(key.charAt(0)+"").toUpperCase();
				String en=ch+key.substring(1);
				entity.put(en, pageData.get(key));
			}
		}
		return entity;
	}
	/**
	 * 首字母小写
	 * @param pageData
	 * @return
	 */
	public static PageData toParam(PageData pageData){
		PageData entity=new PageData();
		if(pageData != null){
			Set keySet = pageData.keySet();
			for (Object object : keySet) {
				String key=object.toString();
				String ch=(key.charAt(0)+"").toLowerCase();
				String en=ch+key.substring(1);
				entity.put(en, pageData.get(key));
			}
		}
		return entity;
	}
}
